The conventional storage systems include storage arrays that have the software (or firmware) loaded on them to perform the designated operations relating to the services supported by the storage system. The uploading of the software on the storage arrays is performed by the software management servers, storage controllers, or service processors. The servers and processors are responsible for generating alerts while the controllers and the processors are responsible for handling input/output operations per second (IOPS) and other components that interconnect and work as storage system. All the aforementioned components of the storage systems have their own operating systems to run the aforementioned operation, whose software (or firmware) needs to be updated periodically according to the changing requirements of the supported services.
A conventional system for updating the software of the storage systems, such as Network Attached Storage (NAS)/Storage Area Network (SAN)/Direct Access Storage (DAS) is time consuming and error prone. In certain scenarios, during upgradation the IOPS transactions pertaining to the storage system being updated gets decreased due to the high CPU utilization. Also, post the updation, the storage system needs to be rebooted, which further leads to loss of availability of the critical services, such as online transaction processing (OLTP) services, supported by the storage system. Such a loss of services is highly avoidable as it may lead to interrupts in service provided by vendors to their customer.
In certain other scenarios, high CPU utilization during software update may lead to issues, such as kernel stuck issues, corruption of an operating system image, and/or corruption of package being updated on the storage system. In addition to the above, the aforementioned updation may require technicians to work round the clock that may drive up the overall cost involved in the maintenance required for the storage systems. Another major problem pertaining to software updation is, the difference in the process for performing updation of storage systems of different vendors. Moreover, the process of updating also varies based on the product type and/or the technology type of the storage systems. Hence, technicians of varied expertise are required for performing the updates. This further leads to increased costs for maintaining the storage systems.
It is therefore desirable to have a storage system updation mechanism that automatically performs software updates to the storage arrays, without affecting the operation or usage traffic of the services supported by the storage system.